package com.ruoyi.service;

import com.github.pagehelper.PageInfo;
import com.hundun.vision.api.dto.FeatureDTO;
import com.hundun.vision.api.dto.OperatorDTO;
import com.hundun.vision.api.dto.StrategyDTO;
import com.hundun.vision.api.query.StrategyQuery;
import com.hundun.vision.api.request.StrategyRequest;

import java.util.List;

/**
 * @author ：RuoChen
 * @date ：17:21 2021/6/11
 * @description：策略服务
 */
public interface StrategyService {
    /**
     * 新增
     *
     * @param request
     * @return
     */
    Boolean save(StrategyRequest request);

    /**
     * 删除
     *
     * @param strategyIds
     * @return
     */
    Integer removeByIds(List<Long> strategyIds);

    /**
     * 修改
     *
     * @param request
     * @return
     */
    Boolean update(StrategyRequest request);

    /**
     * 获取特征列表
     *
     * @return
     */
    List<FeatureDTO> getFeatures();

    /**
     * 获取运算符列表
     *
     * @return
     */
    List<OperatorDTO> getOperators();

    /**
     * 查询
     *
     * @param strategyId
     * @return
     */
    StrategyDTO getById(Long strategyId);

    /**
     * 查询
     *
     * @param query
     * @return
     */
    PageInfo<StrategyDTO> search(StrategyQuery query);
}
